The present invention relates generally to processing of spread spectrum signals by means of vector based algorithms. More particularly the invention relates to a method of receiving spread spectrum signals and a signal receiver. The invention also relates to a computer program and a computer readable medium.
Spread spectrum technology is becoming increasingly important in many areas, of which cellular communication systems and global navigation satellite systems (GNSS) represent two important examples. Moreover, the large variety of transmission standards creates a demand for hybrid- or general-purpose receivers. For instance, both the cellular standards cdma2000 and WCDMA involve transmission of spread spectrum signals. However, due to differences in the air interfaces one and the same terminal cannot be used in the two systems. Instead, a dedicated terminal must be employed in each system. Alternatively, a dual mode terminal must be designed, which includes two separate transceiver chains. Correspondingly, a navigation receiver adapted for one GNSS, say the Global Positioning System (GPS; U.S. Government), is not able to receive signals from a satellite that belongs to a different GNSS, such as the Galileo system (the European programme for global navigation services) or the Global Orbiting Navigation Satellite System (GLONASS; Russian Federation Ministry of Defense).
In order to make this possible, a multi-mode receiver must be designed. However, including multiple receiver chains in a single device is not only expensive, it also renders the unit bulky and heavy, particularly if more than two signal formats are to be processed. Therefore, a programmable software receiver solution is desired whose signal processing principles may be altered according to which signals that shall be received and processed.
Various software solutions are already known for processing GNSS signals. The patent document WO02/50561 is one example in which a GPS receiver tracking system for guiding missiles is described. The receiving station here includes one or more processing stages for receiving and processing GPS data. A control signal controls whether a quantity of processing stages should be increased or decreased in response to the result of a correlation operation. The tracking and recovery of timing information is entirely performed in software. However, the processing involves real-time calculation of relatively complex Fourier transforms, and therefore requires considerable processing resources. Thus, a receiver of this type is not particularly suitable for small sized units, such cellular phones or portable GNSS-receivers.
The article “TUPM 12.4: Software Solution of GPS Baseband Processing”, ULSI Laboratory, Mitsubishi Electric Corporation, IEEE, 1998 by Asai T., et al. outlines the principles for a software GPS receiver using an embedded microprocessor, which enables signals from up to eight satellites to be demodulated at around 40 MIPS (millions of/or Mega Instructions Per Second). A 2 MHz GPS baseband signal is here fed to the software radio receiver, which performs spectrum despreading and mixing; synchronous demodulation, satellite acquisition and tracking; as well as phase compensation. An algorithm is proposed through which the intermediate frequency (IF) signal is 1-bit sampled and where downconversion is performed before despreading. Resulting data in the form of 32 samples are continuously processed in parallel. A DRAM (Dynamic Random Access Memory) stores a particular C/A (Coarse Acquisition) code table for each satellite from which signals are received. All other data and instructions are stored in a cache memory in order to accomplish a high-speed processing. Although this strategy is declared to result in a reasonably efficient implementation, the document lacks a specific description as to how the dispreading and the correlation should be effected in order to, in fact, obtain this effect.
Akos. D. et al., “Tuning In to GPS—Real-Time Software Radio Architectures for GPS Receivers”, GPS World, July 2001 describes a receiver architecture through which IF signal samples are fed directly from a radio front-end to a programmable processor for continued processing. The article mentions the possibility of using single instruction multiple data (SIMD) instructions to process multiple data samples in parallel. However, portability- and flexibility problems are recognized, and again, there is no teaching as to how an efficient parallel processing could actually be accomplished.
Dovis, F. et al., “Design and Test-Bed Implementation of a Reconfigurable Receiver for Navigation Applications”, Electronics Department, Politecnico di Torino, Navigation Signal Analysis and Simulation Group, Spring of 2002 relates to the design of a reconfigurable GNSS receiver which is capable of fusing data from two or more different GNSS:s. The document sketches an architecture which, in addition to a radio front-end, includes a Field Programmable Gate Array (FPGA) and a Digital Signal Processor (DSP). The authors address various computational load issues. However, they do not present an algorithm which fulfills the identified requirements.
Hence, the prior art includes a number of examples of software-based GNSS-receivers. Nevertheless, there is yet no distinct teaching of a highly efficient solution which is suitable for implementation in software and has capabilities that are at least in par with those of today's ASIC-based solutions for receiving and processing spread spectrum signals in real-time (ASIC=Application Specific Integrated Circuit).